﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace  RzCorportativo.Views.Consulta
{
    public partial class Usuarios : BasePage
    {
        private object DataSource
        {
            get { return this.Session["$Usuarios$DataSource"]; }
            set { this.Session["$Usuarios$DataSource"] = value; }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if ("loginNull".Equals(Session["op"]))
            {
                Session.Remove("op");
                Alert alert = new Alert("erroGeral", this);
                alert.AlertType = AlertType.Error;
                alert.Add("loginNull", "Não foi possível carregar os dados do login selecionado");
                alert.Show();
            }
            if ("s".Equals(Session["op"]))
            {
                Session.Remove("op");
                Alert alert = new Alert("erroGeral", this);
                alert.AlertType = AlertType.Success;
                alert.Add("sucesso", "Item salvo com sucesso!");
                alert.Show();
            }
            this.ListaPacientes.SetSystemPageSize();
            if (this.IsPostBack)
                return;
            this.LoadData(null);
        }

        private void LoadData(RzCorportativo.Lib.Login filtro)
        {
            if (filtro == null)
                filtro = new RzCorportativo.Lib.Login();
            this.ListaPacientes.DataSource = DataSource = RzCorportativo.Lib.Login.Listar(filtro);
            this.ListaPacientes.DataBind();
        }

        protected void ListaPacientes_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            var lista = (this.DataSource as List<RzCorportativo.Lib.Login>);
            if(lista == null)
                return;
            var item = lista[(this.ListaPacientes.PageSize * this.ListaPacientes.PageIndex) + e.NewSelectedIndex];//.FindControl("LoginId") as TextBox;
            if (item == null)
                return;
            this.Response.Redirect(EFramework.Web.UrlBase.UrlPadrao + "Views/Cadastros/Usuario.aspx?usuario=" + item.LoginId);// (item as TextBox).Text);
        }

        protected void buscar_Click(object sender, EventArgs e)
        {
            RzCorportativo.Lib.Login paciente = new RzCorportativo.Lib.Login();
            paciente.Usuario = new RzCorportativo.Lib.Usuario();
            paciente.Usuario.Nome = this.Nome.Text;
            paciente.Usuario.Cpf = EFramework.Web.Configuration.MaskConfiguration.RemoveMask(CPF.Text, "cpfKeyDel");
            var itens = RzCorportativo.Lib.Login.Listar(paciente);
            this.ListaPacientes.DataSource = this.DataSource = itens;
            this.ListaPacientes.DataBind();
        }

        protected void ListaPacientes_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            DataSource = DataSource == null ? RzCorportativo.Lib.Login.Listar(new RzCorportativo.Lib.Login()) : DataSource;
            this.ListaPacientes.SetPage(e.NewPageIndex, DataSource);
        }
    }
}